final-exam

期末复习看这一篇就够了,别的章节笔记可以不看

别的章节笔记有考试无关内容,请注意甄别


00 考试说明

往年考试题型 (仅供参考,卷面总分 100 分):
·填空题:~30 分,1 分/每个空
·单选题/多选题:~32 分,2 分/每道题
·简答题:~12 分,共 2 道题
·计算题:~10 分,共 2 道题
·分析题:~16 分,共 3 道题

中文出卷,中文答题,闭卷考试!
不用准备和使用计算器 (因为题型中没有需要使用计算器的题目)、不需准备草稿纸 (考卷中提供草稿纸)

历年各章的题型和分数分布:
Pasted image 20250613112753.png|500

总体体验:

复习准备:

资源和回忆卷:


01 知识表达与推理

Checkpoint

  • 代表性知识表达方法:命题逻辑、谓词逻辑、产生式规则(production rule)、框架 (frame) 表示法、知识图谱等
  • 命题:确定为真或为假的陈述句
  • 原子命题:不包含其他命题作为其组成部分的命题,又称简单命题
  • 复合命题:包含其他命题作为其组成部分的命题
  • 五种主要的命题联结词:与合取、或/析取、非/否定、条件/蕴含、双向条件/双向蕴含
  • 逻辑等价:具有相同的真假结果,一般用 ≡ 来表示
  • 逻辑推理是根据某种特定策略,从前提出发推出结论的过程。用符号 ⇒ 来表示推理过程,⇒ 的左侧表示推理的前提,⇒ 的右侧表示推理的结论
  • 命题逻辑只能把复合命题分解为简单命题(即原子命题),无法对原子命题所包含的丰富语义(如个体、部分或全体等)进行刻画。因此,命题逻辑无法表达局部与整体、一般与个别的关系
  • 谓词逻辑:刻画主体(个体和群体)之间逻辑关系的方法。在谓词逻辑中,将原子命题进一步细化,分解出个体、谓词和量词,来表达个体与总体的内在联系和数量关系,这就是谓词逻辑的研究内容
  • 函数是从定义域到值域的映射;谓词是从定义域到二值集合 [True, False] 的映射。
  • 全称量词和存在量词
  • 知识图谱推理:作为归纳逻辑程序设计(inductive logic programming, ILP)的代表性方法,FOIL(First Order Inductive Learner,一阶归纳学习器)通过序贯覆盖学习推理规则。(FOIL 信息增益值(information gain)计算)
  • 与 FOIL 算法不同,路径排序推理算法(PRA 的基本思想是将实体之间的关联路径作为特征,来学习目标关系的分类器。主要分为三步:特征抽取、特征计算、分类器训练
  • 概率图模型:贝叶斯网络、马尔可夫网络、朴素贝叶斯模型、最大熵模型、隐马尔可夫模型、条件随机场、主题模型等
  • 贝叶斯网络:用一个有向无环图来表示,其用有向边来表示节点和节点之间的单向概率依赖。贝叶斯网络满足局部马尔可夫性,即在给定一个节点的父节点的情况下,该父亲节点有条件地独立于它的非后代节点
  • 马尔可夫网络:表示成一个无向图的网络结构,其用无向边来表示节点和节点之间的相互概率依赖。
  • 马尔可夫逻辑网络是一种将概率图模型与一阶逻辑结合的工具,用于处理不确定性和复杂关系。它通过将一阶逻辑规则与权重结合,允许规则在不确定情况下灵活应用
  • 克服辛普森悖论(Simpson’s Paradox):厘清真/假关联
  • 关联关系的三种来源:因果关联(Causation)、混淆偏差(Confounding Bias)和选择偏差(Selection Bias)
  • 因果分析的两种理论框架:潜在结果框架、结构因果模型
  • 因果图的优势:易于计算变量的联合概率
  • 因果推理:因果干预(改变明确存在关联关系的某变量取值,研究变量取值改变对结果变量的影响)与 do 算子(计算当系统中一个变量取值发生变化、其他变量保持不变时,系统输出结果是否变化)
  • P(Y=1|do(X=1))P(Y=1|do(X=0)) 被称为“因果效应差”(causal effect difference)或“平均因果效应”(average causal effect, ACE),P(Y=y|do(X=x)) 被称为因果效应。
  • 反事实推理:某个事情已经发生了,则在相同环境中,这个事情不发生会带来怎样的新结果?
  • 因果模型的层次化示意图

逻辑关心的问题:

规范化的逻辑知识:

知识表达方法

1.1 命题逻辑

命题

命题:一个能确定为真或为假的陈述句

分类

命题连接符号 表示形式 意义
与 (and) pq 命题合取 (conjunction),即“pq
或 (or) pq 命题析取 (disjunction),即“pq
非(not) ¬p 命题否定 (negation),即“非 p
条件 (conditional) pq 命题蕴含 (implication),即“如果 pq
双向条件 (bi-conditional) pq 命题双向蕴含 (bi-implication),即“p 当且仅当 q
条件命题联结词中前件为假时,无论后件取值如何,复合命题恒为真

逻辑等价:给定命题 p 和命题 q, 如果 pq 在所有情况下都具有同样真假结果,那么 pq 在逻辑上等价,一般用 来表示,即 pq

逻辑等价的例子
αββα (Λ的交互律) (αβ)¬αβ (蕴涵消除)
αββα (∨的交互律) (αβ)(αβ)(βα) (双向消除)
(αβ)γα(βγ) (Λ的结合律) ¬(αβ)(¬α¬β) (德摩根定律)
(αβ)γα(βγ) (∨的结合律) ¬(αβ)(¬α¬β) (德摩根定律)
¬(¬α)α (双重否定) (α(βγ))(αβ)(αγ) (Λ对∨的分配律)
(αβ)¬β¬α (逆否命题) (α(βγ))(αβ)(αγ) (∨对Λ的分配律)

推理规则

推理是按照某种策略从前提出发推出结论的过程

推理规则的例子
假言推理
(Modus Ponens)
αβ, αβ
与消解
(And-Elimination)
α1α2αnαi(1in)
与导入
(And-Introduction)
α1,α2,...,αnα1α2αn
双重否定 (Double-Negation Elimination) ¬¬αα
单项消解或单项归结 (Unit Resolution) αβ,¬βα
消解或归结 (Resolution) αβ,¬βγαγ α1α2αm,¬αkα1α2αk1αk+1αm

1.2 谓词逻辑

命题逻辑的局限性:在命题逻辑中,每个陈述句是最基本的单位 (即原子命题),无法对原子命题进行分解

谓词逻辑:将原子命题进一步细化,分解出个体、谓词 predicate 和量词 quantifier

个体与谓词

例如,𝑃(𝑥) 表示:𝑥<𝑥2

函数与谓词的区别

  • 函数是从定义域到值域的映射
  • 谓词是从定义域到{True, False}的映射

事实符号化

  1. Richard 是国王。
  • King (Richard)
  • 其中,Richard 是一个个体常量,King 是一个描述“国王”这个一元关系的谓词
  1. Lucy 和 Lily 是姐妹
  • Sister (Lucy, Lily)
  • 其中,Lucy 和 Lily 是两个个体常量,Sitter 是一个描述“姐妹” 这个二元关系的谓词

量词

量词

量词之间的逻辑等价关系

xP(x)¬x¬P(x)x¬P(x)¬xP(x)¬xP(x)x¬P(x)xP(x)¬x¬P(x)

变元

相关的逻辑等价关系:

(x)(A(x)B)(x)A(x)B(x)(A(x)B)(x)A(x)B(x)(A(x)B)(x)A(x)B(x)(A(x)B)(x)A(x)B (x)(A(x)B(x))(x)A(x)(x)B(x)(不成立)(x)(A(x)B(x))(x)A(x)(x)B(x)(x)(A(x)B(x))(x)A(x)(x)B(x)(x)(A(x)B(x))(x)A(x)(x)B(x)(不成立) (x)(y)A(x,y)(y)(x)A(x,y)(x)(y)A(x,y)(y)(x)A(x,y)(x)(y)A(x,y)(y)(x)A(x,y)(x)(y)A(x,y)(x)(y)A(x,y)(y)(x)A(x,y)(x)(y)A(x,y)(x)(y)A(x,y)(y)(x)A(x,y)(x)(y)A(x,y)(y)(x)A(x,y)(y)(x)A(x,y)(x)(y)A(x,y)

A(x) 是谓词公式,xy 是变元,a 是常量符号,则存在如下谓词逻辑中的推理规则:

1.3 知识图谱推理

基本概念

知识图谱

关系推理是统计关系学习研究的基本问题:从现有知识发掘新的知识

现在面临一个问题,如何从知识图谱中推理得到:father (David, Ann) ?

(x)(y)(z)(Mother(z,y)Couple(x,z)Father(x,y))

归纳逻辑程序设计 (inductive logic programming,ILP) 算法

ILP:使用一阶谓词逻辑进行知识表示,通过修改和扩充逻辑表达式对现有知识归纳,完成推理任务

对于:

(x)(y)(z)(Mother(z,y)Couple(x,z)Father(x,y))
FOIL 算法

  • 输入:目标谓词 P, P 的训练样例(正例集合 E+和反例集合 E-),其他背景知识
  • 输出:推导得到目标谓词 P 的推理规则

  • 流程
    1. 将目标谓词作为所学习推理规则的结论
    2. 将其他谓词逐一作为前提约束谓词加入推理规则,计算所得到推理规则的 FOIL 信息增益值,选取最优前提约束谓词以生成新推理规则,并将训练样例集合中与该推理规则不符的样例去掉
    3. 重复 2 过程,直到所得到的推理规则不覆盖任意反例

从一般到特殊,逐步添加目标谓词的前提约束谓词,直到所构成的推理规则不覆盖任何反例

哪些谓词好呢? 可以作为目标谓词的前提约束谓词?

FOILGain=m+^(log2m+^m+^+m^log2m+m++m)

路径排序算法(path ranking algorithm, PRA)

路径排序推理算法(PRA)的基本思想:将实体之间的关联路径作为特征,来学习目标关系的分类器
可以分为如下三步:

1.4 概率图谱推理

概率图(probabilistic graph)

概率图模型一般分为贝叶斯网络(Bayesian Network)和马尔可夫网络(Markov Network)两大类

贝叶斯网络

贝叶斯网络满足局部马尔可夫性(local Markov property):在给定一个节点的父节点的情况下,该父亲节点有条件地独立于它的非后代节点(non-descendant)

马尔可夫逻辑网络

从概率统计的角度:

从一阶谓词逻辑角度:

马尔可夫逻辑网络是一种将概率图模型与一阶逻辑结合的工具

给定一个由若干规则构成的集合,集合中每条推理规则赋予一定权重,则可如下计算某个断言 x 成立的概率:

P(X=x)=1Zexp(iwini(x))=1Ziϕi(x{i})ni(x)

其中 ni(x) 是在推导 x 中所涉及第 i 条规则的逻辑取值 (为 1 或 0)、wi 是该规则对应的权重,z 是一个固定的常量,可由下式计算:

Z=xXexp(iwini(x))

1.5 因果推理

辛普森悖论

如下是某组病人在是否尝试新药以后的恢复情况:不用药病人的恢复率高于用药病人的恢复率
对所有病人按照性别分组后,当比较按性别分组的两类病人的恢复率时,却发现用药病人的恢复率均高于不用药病人的恢复率
Pasted image 20250614180230.png|400

在某些情况下,忽略潜在的“第三个变量”(本例中性别就是用药与否和恢复率之外的第三个变量),可能会改变已有的结论

事实上,辛普森悖论的主要原因是因为“第三变量”导致了用药与否和恢复率之间的虚假关联

关联关系的三种来源

Pasted image 20250614180508.png|375

因果关联:数据中两个变量,如一个变量是另一个变量的原因,则该两变量之间存在因果关联

混淆关联:数据中待研究的两个变量之间存在共同的原因变量

选择关联:数据中待研究的两个变量之间存在共同的结果变量

两种理论框架

潜在因果框架

结构因果模型

对于有向无环图模型,模型中 d 个变量的联合概率分布:

P(x1,x2,,xd)=j=1dP(xj|xpa(j)) P(X=x,Y=y,Z=z)=P(X=x)P(Y=y|X=x)P(Z=z|Y=y)

更复杂的,对于下图,有:

P(X1,X2,X3,X4,X5,X6,Xi,Xj)=P(X2)×P(X3)×P(X1|X2,X3,Xi)×P(X4|X2)×P(X5|X3)×P(X6|Xi)×P(Xi|X4)×P(Xj|X1,X5,X6)

Pasted image 20250614182632.png|300

因果干预与 do 算子

干预:改变明确存在关联关系的某变量取值,研究变量取值改变对结果变量的影响

"do"算子:计算当系统中一个变量取值发生变化、其他变量保持不变时,系统输出结果是否变化

因果效应

因果效应:给定因果图 G,PA 表示 X 的父节点集合,则 XY 的因果效应为:

P(Y=y|do(X=x))=zP(Y=y|X=x,PA=z)P(PA=z)

其中,z 是 PA 的具体取值

我们解释如上公式

以前面所言辛普森悖论为例,其因果图可以用下图表示:

可以对病人的用药情况进行干预,来计算因果效应差

P(Y=1|do(X=1))P(Y=1|do(X=0))

对用药情况 X 进行干预并固定其值为 x 时,可将所有指向 X 的边均移除:
Pasted image 20250614184746.png|250

因果效应 P(Y=y|do(X=x)) 等价于上图,引入干预的操纵图中的条件概率 Pm(Y=y|X=x),继续推导:

P(Y=y|do(X=x))=Pm(Y=y|X=x)=zPm(Y=y|X=x,Z=z)Pm(Z=z|X=x)=zPm(Y=y|X=x,Z=z)Pm(Z=z)

最后得到正常 (无干预) 条件下的概率表示的因果效应:

P(Y=y|do(X=x))=zP(Y=y|X=x,Z=z)P(Z=z)

因果模型的层次化示意图

层次化示意图
可观测问题 What if we see A (what is?) $P(y\ A)$
决策行动问题 What if we do A (what if?) $P(y\ do (A))$ (如果采取 A 行为,则 y 将如何)
反事实问题 What if we did things differently (why) $P(y'\ A)$ (如果 A 为真,则 y′将如何)

02 搜索探寻与问题求解

Checkpoint

  • 搜索的形式化描述:〈状态、动作、状态转移、路径/代价、目标测试〉
  • 搜索过程可视为搜索树的构建过程:TreeSearch, GraphSearch
  • 搜索算法的评测标准:完备性、最优性、时间复杂度、空间复杂度
  • 放弃扩展部分结点的做法被称为剪枝(pruning),其对应的搜索算法被称为剪枝搜索
  • 无信息搜索 vs 有信息搜索 / 启发式搜索
  • 路径代价函数 g (n),评价函数 f (n)、启发函数 h (n)
  • 贪婪最佳优先搜索 (Greedy best-first search):将启发函数作为评价函数的搜索过程,f (n) = h (n)
  • A*搜索算法:评价函数和启发函数各司其职,f (n) = g (n) + h (n)
  • A*算法的完备性和最优性取决于搜索问题和启发函数的性质(可容性、一致性,一致性必然导致可容性)
  • 可容性: h (n) ≤ h*(n),如果启发函数是可容的,那么 A*算法满足最优性
  • 一致性: h (n) ≤ c (n, a, n') + h (n'),满足一致性条件的启发函数一定满足可容性条件
  • A*算法满足完备性的条件:
    • a) 搜索树中分支数量是有限的,即每个结点的后继结点数量是有限的
    • b) 单步代价的下界是一个正数
    • c) 启发函数有下界

2.1 搜索算法基础

形式化描述

状态、动作、状态转移、路径/代价、目标测试

Pasted image 20250605094330.png|350

我们用一棵树来记录算法探索过的路径

搜索算法可以被看成是一个构建搜索树的过程,从根结点(初始状态)开始,不断展开每个结点的后继结点,直到某个结点通过了目标测试

搜索算法具备如下的评价指标:

评价指标
完备性 当问题存在解时,算法是否能保证找到一个解
最优性 搜索算法是否能保证找到的第一个解是最优解
时间复杂度 找到一个解所需时间
(通过拓展的节点数量来衡量)
空间复杂度 在算法的运行过程中需要消耗的内存量
(通过算法同时记录的节点数量来衡量)

而在搜索树中,我们通常使用如下变量,估计复杂度:

符号 含义
b 分支因子,即搜索树中每个节点最大的分支数目
d 根节点到最浅的目标结点的路径长度
m 搜索树中路径的最大可能长度
n 状态空间中状态的数量

搜索算法框架

树搜索

边缘 (fringe) 集合: 集合ℱ用于保存搜索树中可用于下一步探索的所有候选结点,也叫做开表 (openlist)

TreeSearch

  • 输入:节点选择函数 (决定拓展顺序) pick_from,后继节点计算函数 (决定待拓展节点) successor_nodes
  • 输出:从初始状态到终止状态的路径

  • 算法流程
    • F{根节点}
    • while F do
      •   npick_from(F)
      •   FF{n}
      •   if goal_test(n) then
        •     return n.path
      •   end
      •   FFsuccessor_nodes(n)
    • end

剪枝搜索

树搜索算法存在问题:并不是其所有的后继节点都值得被探索

图搜索

在图搜索策略下,在边缘集合中所有产生环路的节点都要被剪枝,但不会排除所有潜在的可行解。因此在状态数量有限情况下,采用图搜索策略的算法也是完备的

GraphSearch

  • 输入:节点选择函数 pick_from,后继节点计算函数 successor_nodes
  • 输出:从初始状态到终止状态的路径

  • 算法流程
    • F根节点
    • C C 用于标记已经访问过的节点
    • while F ≠ do
      • n ← pick_from (F)
      • F ← F =
      • if goal_test (n) then
        • return n.path
      • end
      • if n.state C then (删除引起环路的节点)
        • C ← C
        • F ← F successor_nodes (n)
      • end
    • end

2.2 启发式搜索 (有信息搜索)

辅助信息 所求解问题之外、与所求解问题相关的特定信息或知识。
评价函数(evaluation function)f (n) 从当前节点 n 出发,根据评价函数来选择后续结点 下一个结点是谁?
启发函数(heuristic function)h (n) 计算从结点 n 到目标结点之间所形成路径的最小代价值,这里将两点之间的直线距离作为启发函数 完成任务还需要多少代价?

贪婪最佳优先搜索

评价函数 f(n) =启发函数 h(n)

如下图所示

贪婪最佳优先搜索采用了排除环路的剪枝算法,但未考虑从初始节点到达该节点所需的代价

A* 算法

f(n)评价函数=g(n)起始结点到结点n代价()+h(n)结点n到目标结点代价()

Pasted image 20250605113346.png|500

性能分析
符号 含义
h(n) 节点 n 的启发函数取值
g(n) 从起始节点到节点 n 所对应路径的实际代价
f(n) 节点 n 的评价函数取值
c(n,a,n) 从节点 n 执行动作 a 到达节点 n 的单步代价
h(n) 从节点 n 出发到达终止节点的最小代价
一个良好的启发函数需要满足如下两种性质:

2.3 对抗搜索

对抗搜索 (Adversarial Search) 也称为博弈搜索 (Game Search)

智能体 (agents) 之间通过竞争实现相反的利益,一方最大化这个利益,另外一方最小化这个利益:
Pasted image 20250605121008.png|275

两人对决游戏 (MAX and MIN, MAX 先走) 可如下形式化描述:

形式化描述
状态 状态 s 包括当前的游戏局面和当前行动的智能体
函数 player (s) 给出状态 s 下行动的智能体
动作 给定状态 s,动作指的是 player (s) 在当前局面下可以采取的操作 a
记动作集合为 actions (s)
状态转移 给定状态 s 和动作 a∈actions (s),状态转移函数 result (s, a) 决定了在 s 状态采取 a 动作后所得后继状态
终局状态检测 终止状态检测函数 terminal_test (s) 用于测试游戏是否在状态 s 结束。
终局得分 终局得分 utility (s, p) 表示在终局状态 s 时玩家 p 的得分。

本次讨论中,主要讨论在**确定的、全局可观察的、竞争对手轮流行动、零和游戏(zero-sum)**下的对抗搜索

看 Alpha-Beat 剪枝的例子理解即可

Pasted image 20250605130032.png|450
Pasted image 20250605131208.png|275

给定一个游戏搜索树,minimax 算法通过每个节点的 minimax 值来决定最优策略

minimax(s)={utility(s),if terminal_test(s)maxaactions(s)minimax(result(s,a)),if player(s)=MAXminaactions(s)minimax(result(s,a)),if player(s)=MIN

性能分析

Alpha-Beta 剪枝搜索算法在 Minimax 算法中可减少被搜索的结点数,即在保证得到与原 Minimax 算法同样的搜索结果时,剪去了不影响最终结果的搜索分枝

Pasted image 20250605131541.png|450

Alpha 剪枝

Pasted image 20250605131815.png|300

Beta 剪枝

Pasted image 20250605132043.png|300

算法流程

Pseudo Code

  1. 根结点(MAX 结点)的𝛼值和𝛽值分别被初始化为−∞和+∞
  2. 子节点继承父节点的𝛼值和𝛽值,再按照以下规则进行更新
  3. 对于 MAX 节点,如果其孩子结点(MIN 结点)的收益大于当前的𝛼值(极大层的下界),则将𝛼值更新为该收益
  4. 对于 MIN 结点,如果其孩子结点(MAX 结点)的收益小于当前的𝛽值(极小层的上界),则将𝛽值更新为该收益
  5. 如果一个结点的𝛼值和𝛽值满足𝛼>𝛽的条件,则该结点尚未被访问的后续结点就可以被剪枝

2.4 蒙特卡洛搜索

引入:多臂赌博机问题

问题描述:

形式化分析

因此,问题求解的目标为最小化悔值函数的期望,该悔值函数的取值取决于智能体所采取的策略

智能体不能预先计算好最优策略,然后实行,而是需要一边探索一边调整自己的策略,争取获得更好的收益

贪心算法策略

贪心算法策略如下:

不足:忽略了其他从未摇动或很少摇动的赌博机,而失去了可能的机会 👇 探索与利用结合

𝝐-贪心算法

lt={argmaxix¯i,T(i,t1),1ϵ随机的i{1,2,,K},ϵ

不足:与被探索的次数无关 👉 需要对那些探索次数少或几乎没有被探索过的动作赋予更高的优先级

上限置信区间算法(Upper Confidence Bounds, UCB 1)

在第 t 次时选择使得如下式子取值最大的动作 alt

lt=argmaxix¯i,T(i,t1)+C2lntT(i,t1)

优先采用探索估计值不确定度高的动作

算法流程

如何高效地拓展搜索树:

目标降低,改为求解一个近似最优解:

Pseudo Code

  • 选择 (selection)
    • 算法从搜索树的根节点开始,向下递归选择子节点,直至到达叶子节点或者到达具有还未被扩展过的子节点的节点 L
    • 这个向下递归选择过程可由 UCB 1 算法来实现,在递归选择过程中记录下每个节点被选择次数和每个节点得到的奖励均值
  • 扩展 (expansion)
    • 如果节点 L 不是一个终止节点 (或对抗搜索的终局节点), 则随机扩展它的一个未被扩展过的后继边缘节点 M
  • 模拟 (simulation)
    • 从节点 M 出发,模拟扩展搜索树,直到找到一个终止节点
    • 模拟过程使用的策略和采用 UCB 1 算法实现的选择过程并不相同
      • 模拟过程通常会使用比较简单的策略,例如使用随机策略
  • 反向传播 (Back Propagation)
    • 用模拟所得结果 (终止节点的代价或游戏终局分数) 回溯更新模拟路径中 M 以上 (含 M) 节点的奖励均值和被访问次数


03 机器学习

Checkpoint

  • 从数据利用的角度,ML 划分为监督学习、无监督学习及半监督学习
  • 有监督学习:训练集、验证集、测试集
  • 模型评估与参数估计手段:损失函数
  • 经验风险与期望风险
  • 经验风险最小化与过学习 (overfitting)
  • 模型的泛化能力:在机器学习中,需要保证模型在训练集上所取得性能与在测试集上所取得性能保持一致
  • 模型泛化能力与经验风险和期望风险之间关系
  • 结构风险最小化 (structural risk minimization) 引入正则化 (regularizer) 或惩罚项 (penalty term) 来降低模型模型复杂度,既最小化经验风险、又力求降低模型复杂度,在两者之间寻找平衡:1ni=1nLoss(yi,f(xi))+λJ(f)
  • 模型度量方法:准确率、错误率、精确率、召回率、综合分类率 F1-score(2×Precision×RecallPrecision+Recall
  • 监督学习:
    • 回归分析(线性 vs 非线性)
    • 决策树(信息熵、信息增益 Gain(D,A)=Ent(D)i=1|Di||Di||D|Ent(Di)、信息增益率、Gini 系数)
    • 线性判别分析(LDA,基于监督学习的降维方法,最大化的目标 f(w)=m1m2s1+s2=wTSw1wwTSwwwSw1(m2m1)
  • 无监督学习:
    • K 均值聚类:通过最小化聚簇内的数据方差来实现最大化类内相似度的
    • 主成分分析:无监督特征降维方法,要求最大限度保持原始高维数据的总体方差结构。应用于基于特征人脸的识别
  • 演化算法:遗传算法 (genetic algorithm)、遗传规划 (genetic programming, GP)、演化策略 (evolutionary strategy)

3.1 机器学习基本概念

通过对数据的优化学习,建立能够刻画数据中所蕴含语义概念或分布结构等信息的模型

数据利用的角度分类:

监督学习

监督学习:带有标签信息数据的训练集

数据集可分为:

没有免费午餐定理

任何一个机器学习模型如果在一些训练集以外的样本上误差小(off-training set error),那么必然在另外一些训练集以外的样本上表现欠佳,任何模型在平均意义上而言其性能都是一样的,即没有放之四海而皆准的最好算法

实践经验:在机器学习中合理引入已有先验假设对模型进行约束,以提升模型效果

泛化能力

在训练过程中,映射函数 f(学习模型)的主要目标是最小化整个训练数据集上的累积“损失”。 这可以表示为:

mini=1nLoss(f(xi),yi)

经验风险 empirical risk 与期望风险 expected risk

期望风险(即真实风险)R 与经验风险 Remp 之间是有差别的,这个差别项被称为置信风险 (err)

“过学习 (over-fitting)”与“欠学习 (under-fitting)”

结构风险最小化 structural risk minimization

minfΦ1ni=1nLoss(yi,f(xi))+λJ(f)

模型度量方法

以二分类问题为例:n 为训练样例总数,正例为 P,负例为 N;
TP 真正例 👉 模型预测为正,实际为正
FP 假正例 👉 模型预测为正,实际为负
TN 真负例 👉 模型预测为负,实际为负
FN 假负例 👉 模型预测为负,实际为正

在实际应用中,精确率和召回率之间是相互矛盾的,比如可以将所有样本分类为正例使得召回率为 100%而精确率极低。因此为了综合考虑精确率和召回率,可采用综合分类率 F1-score:

F1score=21Precision+1Recall=2×Precision×RecallPrecision+Recall

F1-score 是精确率和召回率的调和平均数,在尽可能提高精确率和召回率同时,也希望两者之间的差异尽可能小

3.2 回归分析

分析不同变量之间存在关系的研究叫回归分析,刻画不同变量之间关系的模型被称为回归模型

Pasted image 20250520100548.png|375

一元线性回归

回归模型参数求取: yi=axi+b (1in)

目标: 寻找一组 ab,使得误差总和 L(a,b) 值最小。在线性回归中,解决如此目标的方法叫最小二乘法

多元线性回归

多维数据特征中线性回归的问题定义如下:假设总共有 m 个训练数据 {(xi,yi)}i=1m, 其中 xi=[xi,1,xi,2,...,xi,D]RD, D 为数据特征的维度,线性回归就是要找到一组参数 a=[a0,a1,...,aD], 使得线性函数:

f(xi)=a0+j=1Dajxi,j=a0+aTxi

最小化均方误差函数:

Jm=1mi=1m(yif(xi))2

为了方便,使用矩阵来表示所有的训练数据和数据标签。

X=[x1,,xm],y=[y1,,ym]

其中每一个数据 xi 会扩展一个维度,其值为 1,对应参数 a0

逻辑斯蒂回归/对数几率回归

线性回归一个明显的问题是对离群点非常敏感,导致模型建模不稳定,使结果有偏

逻辑斯蒂回归 (logistic regression) 就是在回归模型中引入 sigmoid 函数的一种非线性回归模型。Logistic 回归模型可如下表示:

y=11+ez=11+e(wTx+b),其中y(0,1),z=wTx+b

这里 11+ez 是 sigmoid 函数、xRd 是输入数据、wRdbR 是回归函数的参数

Pasted image 20250523130546.png|227

logistic 回归只能用于解决二分类问题,将它推广为多项逻辑斯蒂回归模型 (multi-nominal
logistic model, 即 softmax 函数), 用于处理多类分类问题,可以得到处理多类分类问题的 softmax 回归

3.3 决策树

Pasted image 20250409094237.png|450

建立决策树的过程,就是不断选择属性值对样本集进行划分,直至每个子样本为同一个类别

构建决策树时划分属性的顺序选择是重要的。性能好的决策树随着划分不断进行,决策树分支结点样本集的“纯度”会越来越高,即其所包含样本尽可能属于相同类别

信息增益

信息熵(entropy)是度量样本集合纯度最常用的一种指标:如果我们计算选择不同属性划分后样本集的“纯度”, 那么就可以比较和选择属性。信息熵越大,说明该集合的不确定性越大,“纯度”越低

假设有 K 个信息 (类别), 其组成了集合样本 D, 记第 k 个信息 (类别) 发生的概率为 pk(1kK)。如下定义这 K 个信息的信息熵:

Ent(D)=k=1Kpklog2pk

选择属性划分样本集前后信息熵的减少量被称为信息增益 (information gain), 也就是说信息增益被用来衡量样本集合复杂度 (不确定性) 所减少的程度

信息增益的计算:

Gain(D,A)=Ent(D)i=1n|Di||D|Ent(Di)
一般而言,信息增益偏向选择分支多的属性 (比如年龄), 这在一些场合容易导致模型过拟合

信息增益率和基尼系数

信息增益率:新的指标 👉 对分支过多进行惩罚

Info 和 Gain-ratio(增益率)计算公式如下:

info=i=1n|Di||D|log2|Di||D|Gainratio=Gain(D,A)/info
增益率准则对可取数目较少的属性有所偏好

一个启发式:

更简的度量指标是如下的 Gini 指数(基尼指数):

Gini(D)=1k=1Kpk2

3.4 K-means

算法流程

  • 初始化聚类质心
    • 初始化 k 个聚类质心 c={c1,c2,...,ck},cjRm(1jk)
    • 每个聚类质心 cj 所在集合记为 Gj
  • 将每个待聚类的数据放入唯一一个聚类集合中
    • 计算待聚类数据 χi 和质心 cj 之间的欧氏距离 d(xi,cj)(1in,1jk)
    • 将每个 xi 放入与之距离最近聚类质心所在聚类集合中,即 argmincCd(xi,cj)
  • 更新聚类质心
    • 根据每个聚类集合中所包含的数据,更新该聚类集合质心值,即:cj=1|Gj|xiGjxi
  • 算法迭代,直至满足条件
    • 迭代次数上限
    • 质心基本不变

聚类算法的目标都是得到一个聚类结果,最小化类内距离(或最大化类内相似度),而最大化类间距离(或最小化类间相似度)

k -means 聚类就是通过最小化聚簇内的数据方差来实现最大化类内相似度的,即最小化每个类簇方差,
使得最终聚类结果中每个聚类集合所包含的数据呈现出的差异性最小

3.5 监督学习与非监督学习下的特征降维

线性判别分析 LDA

线性判别分析 (linear discriminant analysis, LDA)
也称为 Fisher 线性判别分析(fisher'sdiscriminant analysis,FDA) [Fisher 1936]

在低维空间中同一类别样本尽可能靠近,不同类别样本尽可能彼此远离

Pasted image 20250409104720.png|425

符号定义:

定义 X 为所有样本构成集合、Ni 为第 i 个类别所包含样本个数、Xi 为第 i 类样本的集合、m 为所有样本的均值向量、mi 为第 i 类样本的均值向量。Σi 为第 i 类样本的协方差矩阵,其定义为:

Σi=xXi(xmi)(xmi)TΣi=xXi((x1mi1)2(x1mi1)(x2mi2)(x1mi1)(xdmid)(x2mi2)(x1mi1)(x2mi2)2(x2mi2)(xdmid)(xdmid)(x1mi1)(xdmid)(x2mi2)(xdmid)2)

我们考虑二分类问题,即 K = 2 的情况

在二分类问题中,训练样本归属于 C1C2 两个类别,并通过如下的线性函数投影到一维空间上:

y(x)=wTx(wRd)

投影之后类别 C1 的协方差矩阵 s1 为:

s1=xC1(wTxwTm1)2=wTxC1[(xm1)(xm1)T]w

同时考虑上面两点,就得到了需要最大化的目标 J(w), 定义如下:

J(w)=m2m122s1+s2J(w)=wT(m2m1)2wTΣ1w+wTΣ2w=wT(m2m1)(m2m1)TwwT(Σ1+Σ2)w=wTSbwwTSww Sb=(m2m1)(m2m1)T Sw=Σ1+Σ2

为了获得“类内汇聚、类间间隔”的最佳投影结果,只需要分别求出待投影数据的均值和方差,就可以设计得到最佳投影方向 w, 这就是线性判别分析的做法
将原始数据通过 wTx 进行投影,实现了从高维到低维的映射,因此也是一种降维操作,实现了数据约减,且这一降维结果保持了样本数据的“类内汇聚、类间间隔”结构分布

令投影矩阵 W=(w1,w2,...,wr), 可知 W 是一个 d×r 矩阵

LDA 降维步骤

  1. 计算数据样本集中每个类别样本的均值
  2. 计算类内散度矩阵 Sw 和类间散度矩阵 Sb
  3. 根据 Sw1SbW=λW 来求解 Sw1Sb 所对应前 r 个最大特征值所对应特征向量 (w1,w2,...,wr),构成矩阵 W
  4. 通过矩阵 W 将每个样本映射到低维空间,实现特征降维

Note

通过 LDA 对原始 d 维数据进行降维后,所得维度 r 最大取值为 min{K1,d}

  • 因为 Sb 的秩为 min{K1,d}
  • 说明二分类问题中,原始高维数据只能被投影到一维空间中

主成分分析 PCA

也叫 KL 变换,霍林特变换、本征正交分解

最大限度保持原始高维数据的总体方差结构

主成分分析:特征降维的方法,但要保证降维后的结果要保持原始数据固有结构

线性判别分析 主成分分析
是否需要样本标签 监督学习 无监督学习
降维方法 优化寻找特征向量 w 优化寻找特征向量 w
目标 类内方差小、类间距离大
(这里的类就是由数据带有的标签决定的)
寻找投影后数据之间方差最大的投影方向
维度 LDA 降维后所得到维度是与数据样本的类别个数 K 有关 (Sb 的秩最多为 K-1) PCA 对高维数据降维后的维数是与原始数据特征维度相关
Pseudo-Code

  • 输入:n 个 d 维样本数据所构成的矩阵 X,降维后的维数为 l
  • 输出:映射矩阵 W={w1,w2,...,wl}

  1. 对于每个样本数据 xi 进行中心化处理:xi=xiμ,μ=1nj=1nxj
  2. 计算原始样本数据的协方差矩阵:Σ=1n1XTX
  3. 对协方差矩阵 Σ 进行特征值分解,对所得特征根按其值大到小排序 λ1λ2λd
  4. 取前 l 个最大特征根所对应特征向量 w1,w2,...,wl 组成映射矩阵 W
  5. 将每个样本数据 xi 按照如下方法降维:(xi)1×d(W)d×l=1×l

特征人脸

使用一组特征向量的线性组合来表示原始人脸

特征人脸算法

  • 输入:n 个 1024 维人脸样本数据所构成的矩阵 X,降维后的维数 l
  • 输出:映射矩阵 W ={w1,w2,...,wl}( 其中每个 wj(1 j l) 是一个特征人脸)

算法步骤:

  1. 对于每个人脸样本数据 xi 进行中心化处理:xi=xiμ,μ=1nj=1nxj
  2. 计算原始人脸样本数据的协方差矩阵:Σ=1n1XTX
    L=XXT 代替大的协方差矩阵计算,避免 d 维度过高计算复杂
  3. 对协方差矩阵 Σ 进行特征值分解,对所得特征根从到小排序 λ1λ2λd
  4. 取前 l 个最大特征根所对应特征向量 w1,w2,...,wl 组成映射矩阵 W
  5. 将每个人脸图像 xi 按照如下方法降维:(xi)1×d(W)d×l=1×l

Pasted image 20250427152237.png|475

在特征维度较高的情况下,主成分分析算法暴力求解特征向量是一个耗时操作。可以使用一种矩阵分解方法——奇异值分解(singular value decomposition, SVD)来实现主成分分析,对原始数据进行降维

3.6 演化算法

演化算法:一大类受自然演化启发的启发式随机优化算法,通过“突变重组”和“自然选择” 这两种机制来模拟自然演化过程

遗传算法:引入选择 (selection)、交叉 (crossover) 和变异 (mutation) 等操作以搜索方式来进行优化求解

遗传算法

  1. 初始化:初始化具有若干规模数目的群体。当前进化代数 Generation=0
  2. 计算适应值:采用评估函数计算群体中每个染色体的适应值,保存适应值最大的染色体 Best
  3. 选择:采用轮盘赌选择算法对群体中染色体进行选择,产生同样规模的种群
  4. 轮盘赌选择算法 👉 适应值越大,选中的概率就越大
  5. 交叉:按照概率从种群中选择两对染色体进行交叉操作,即对所选中两对染色体中相应基因片段信息进行交换
  6. 交叉所得染色体进入新种群,未交叉操作染色体被复制进入新种群
  7. 变异:按照概率对新种群中被选中染色体的若干基因片段进行变异操作
  8. 变异后染色体取代原有染色体进入新种群,未发生变异染色体直接进入新群体
  9. 更新 Best:计算种群中各个染色体的适应值。倘若种群中染色体最大适应值大于已知 Best 适应值,则取代原有 Best
  10. 当前进化代数 Generation 加 1。如果 Generation 超过规定的最大进化代数或 Best 达到规定的误差要求,算法结束:否则返回步骤 3


04 神经网络与深度学习

Checkpoint

  • MCP 模型、单层感知机、多层感知机(也叫前馈神经网络,由输入层、输出层和若干隐藏层构成)
  • 激活函数(非线性映射):sigmoid、ReLU、Tanh、Leaky ReLU、Parametric ReLU、Softmax
  • 损失函数:均方误差损失函数(MSE=1ni=1nyiy^i2)、交叉熵损失函数(LCE=1Ni=1Nj=1Kyi,jlog(y^i,j)
  • 误差反向传播算法:将损失函数计算所得误差从输出端出发、由后向前传递给神经网络中每个单元
  • 梯度下降算法:对神经网络中参数进行更新,使损失函数最小化的方法
    • f(x+Δx)f(x)=f(x)ΔxcosθΔxf(x),θnew=θη×θL(θ)
    • 批量梯度下降算法、随机梯度下降算法和小批量梯度下降算法
  • 梯度消失和梯度爆炸
  • 卷积神经网络:
    • 卷积操作:特征图、填充 (padding)、步长 (striding)
    • 池化操作:最大池化(max pooling)、平均池化(average pooling)、k-max 池化(k-max pooling)
    • 特点:选择性感受野、局部感知、参数共享、采样约减抽象
  • 循环神经网络:RNN、长短时记忆模型 LSTM(内部记忆单元、三种门结构、减弱梯度消失)
  • 注意力机制:自注意力(self-attention)、多头注意力(multi-headed attention)
  • 神经网络正则化:Dropout、批归一化(batch normalization)、L1 和 L2 正则化
  • 词向量生成:Word2Vec 模型

4.1 前馈神经网络与参数优化

神经网络基本单元:MCP 神经元
神经元因何连接:赫布理论
神经元链接成"网":感知机

基本概念

神经元是深度学习模型中基本单位。可以如下刻画神经元功能:

  1. 对相邻前向神经元输入信息进行加权累加:In=in=wiai
  2. 对累加结果进行非线性变换 (通过激活函数) :g(x)
  3. 神经元的输出:Out =g(In)

Pasted image 20250422095711.png|375

神经网络使用非线性函数作为激活函数(activation function),通过对多个非线性函数进行组合,来实现对输入信息的非线性变换:
Pasted image 20250422095734.png|375

Sigmoid 函数性质

  • 概率形式输出:函数是单调递增的,其值域为 (0,1), 可用作概率值
  • 单调递增:对输入 z 没有取值范围限制,但当 z 大于 (小于) 一定数值后,函数输出无限逼近 1 (0), 当 z 等于 0 时,函数输出为 0.5
  • 非线性变化:z 取值在 0 附近时,函数输出值变化比较大,且是非线性变化,但 z 取值很大或很小时,函数输出值几乎不变

梯度消失问题

sigmoid 函数导数小于 1,在使用反向传播更新参数,容易出现导数过于接近 0 的情况

Relu 函数性质

  • 当输入 x0 时,ReLU 的导数为常数,这样可有效缓解梯度消失这一问题
  • 当输入 x<0 时,ReLU 的梯度总是 0,导致神经网络中若干参数激活值为 0,即参与分类等任务神经元数目稀缺,这种稀疏性可以在一定程度上克服机器学习中经常出现的过拟合现象
    • 然而,当 x<0 时,ReLU 梯度为 0 也导致神经元“死亡”, 即神经元对应权重永远不会更新
  • 为了解决这个问题,可以使用其他激活函数,如 Leaky ReLU 或 Parametric ReLU, 它们在 x<0 时梯度取值非零

Softmax 函数一般用于多分类问题中,其将输入数据 xi 映射到第 i 个类别的概率 yi 如下计算:

yi=softmax(xi)=exij=1kexj

Pasted image 20250422095830.png|250

感知机模型

早期的感知机结构和 MCP 模型相似,由一个输入层和一个输出层构成,因此也被称为 “单层感知机”。感知机的输入层负责接收实数值的输入向量,输出层则能输出 1 或 -1 两个值
Pasted image 20250530144957.png|400

单层感知机可以作为一种线性二分类模型

单层感知机可模拟逻辑与 (AND)、逻辑与非 (NAND) 和逻辑或 (OR) 等线性可分函数,但是无法完成逻辑异或 (XOR) 这一非线性可分逻辑函数任务

多层感知机由输入层、输出层和至少一层的隐藏层构成 👉也叫做前馈神经网络

如何优化网络参数?

从标注数据出发,优化模型参数:监督学习过程

损失函数(Loss Function):计算模型预测值与真实值之间的误差

梯度下降 Gradient Descent

梯度下降算法是一种使得损失函数最小化的方法。一元变量所构成函数𝒇在𝒙处梯度为:

df(x)dx=limh0f(x+h)f(x)h

假设损失函数 f(x) 是连续可微的多元变量函数, 其泰勒展开如下 ( Δx 是微小的增量):

f(x+Δx)=f(x)+f(x)Δx+12f(x)(Δx)2++1n!f(n)(x)(Δx)nf(x+Δx)f(x)(f(x))TΔx
误差反向传播 Error Back Propagation (BP)

BP 算法是一种将输出层误差反向传播给隐藏层进行参数更新的方法

Pasted image 20250530152625.png|450

梯度下降算法

batch size 的选择带来的影响

在合理地范围内,增大 batch size 的好处:

  • 内存利用率提高了
  • 跑完一次 epoch (全数据集) 所需的迭代次数减少
  • 在一定范围内,一般来说 Batch_Size 越大,其确定的下降方向越准,引起训练震荡越小

盲目增大 batch_size 的坏处:

  • 内存容量可能撑不住了
  • 跑完一次 epoch (全数据集) 所需的迭代次数减少,但要想达到相同的精度,其所花费的时间大大增加了,从而对参数的修正也就显得更加缓慢
  • Batch Size 增大到一定程度,其确定的下降方向已经基本不再变化

4.2 卷积神经网络

为什么需要卷积神经网络👇
当模型参数数量变得巨大时,不仅会占用大量计算机内存,同时也使神经网络模型变得难以训练收敛。因此,对于图像这样的数据,不能直接将所构成的像素点向量与前馈神经网络神经元相连

卷积

不同卷积核可被用来刻画视觉神经细胞对外界信息感受时的不同选择性:
Pasted image 20250422103311.png|475

下采样约减抽象

下采样约减抽象:假设被卷积图像大小为 w×w 、卷积核大小为 F×F 、上下左右四个边缘填充像素行/列数为 P=[F/2] 、步长为 S ,则被卷积结果的分辨率是

WF+2PS+1

上面的公式是采用了 Padding 策略的,如果不采用 Padding 策略:

WFS+1

池化

图像中存在较多冗余,可用某一区域子块的统计信息 (如最大值或均值等)来刻画该区域中所有像素点呈现的空间分布模式

池化 Pooling: 对输入的特征图进行下采样,以获得最主要的信息

分布式向量表达 (distributed vector representation):卷积神经网络在若干次卷积操作、接着对卷积所得结果进行激活函数操作和池化操作下,最后通过全连接层来学习得到输入数据的特征表达

4.3 循环神经网络

循环神经网络:一类处理序列数据(如文本句子、视频帧等)时所采用的网络结构

基本架构

在时刻 t, 一旦得到当前输入数据 xt, 循环神经网络会结合前一时刻 t1 得到的隐式编码 ht1, 如下产生当前时刻隐式编码 ht:
$$h_t=\Phi (\mathrm{U}\times x_t+\mathrm{W}\times h_{t-1})$$

Pasted image 20250422112301.png|400

循环神经网络读入每个单词后,先产生对应单词的隐式编码,再如下得到一个句子的向量编码:

  1. 最后一个单词输出作为整个句子的编码
    • 因为句子中所有单词的信息均被后向传递
  2. 将每个单词的隐式编码进行加权平均,将加权平均结果作为整个句子的向量编码表示
    Pasted image 20250607204644.png|450

梯度传递

假设时刻 t 隐式编码如下得到:ht=tanh(Wxxt+Whht1+b)。使用交叉熵损失函数计算时刻 t 预测输出与实际输出的误差 Et。显然,整个序列产生的误差为 E=12t=1TEt.

LSTM

由于 tanh 函数的导数取值位于 0 到 1 区间,对于长序列而言,若干多个 0 到 1 区间的小数相乘,会使得参数求导结果很小,引发梯度消失问题。为了缓解梯度消失问题,长短时记忆模型(LongShort-Term Memory,LSTM)被提出

引入内部记忆单元

Pasted image 20250422115238.png|475

符号 内容描述/操作
xt 时刻 t 输入的数据
it 输入门的输出: it=sigmoid(Wxixt+Whiht1+bi)
( WxiWhibi 为输入门的参数)
输入门 it 控制有多少信息流入当前时刻内部记忆单元 ct
ft 遗忘门的输出: ft=sigmoid(Wxfxt+Whfht1+bf)
( WxfWhfbf 为遗忘门的参数)
遗忘门控制上一时刻内部记忆单元 ct1 中有多少信息可累积到当前时刻内部记忆单元 ct
ot 输出门的输出: ot=sigmoid(Wxoxt+Whoht1+bo)
( WxoWhobo 为输出门的参数)
输出门控制 ct 最终向 ht 的输出情况
ct 内部记忆单元的输出:ct=ftct1+ittanh(Wxcxt+Whcht1+bc)
(WxcWhcbc 为记忆单元的参数)
ht 时刻 t 输入数据的隐式编码:
$$h_{t}=o_{t}\odot\tanh (c_{t})=o_{t}\odot\tanh (f_{t}\odot c_{t-1}+i_{t}\odot\tanh (W_{xc}x_{t}+W_{hc}h_{t-1}+b_{c}))$$
(输入门、遗忘门和输出门的信息 itftot 一起参与得到 ht
两个向量中对应元素按位相乘 (element-wise product)
如: [10 6 3 7][0.2 0.1 0.8 0.5]=[2 0.6 2.4 3.5]

一些细节:

4.4 注意力机制与正则化

注意力机制

首先生成每个单词的内嵌向量(包含了单词在句子中位置编码向量信息),记为 wi(1i4),如下计算每个单词 wi 的查询向量(query)、键向量 (key) 和值向量 (value):

以图 5.21 中单词 w3 与其他单词之间自注意力取值大小计算为例:

  1. 计算 w3 所对应查询向量与其他单词键向量之间的点积,该点积可作为单词 w3 与其他单词之间的关联度: α3i=q3ki
  2. α3i 结果通过 softmax 函数进行归一化操作,得到 α3i。对于给定“项庄舞剑、意在沛公”句子,α3i 记录了“意在”单词与其他单词所具有的重要程度(即注意力)
  3. α3i 乘以每个单词 wi 所对应的值向量 vi,即 α3i×vi
  4. 对上一步结果进行 iα3i×vi,这个结果作为在当前句子语境下单词 w3 “注意”到与其他单词的关联程度(self-attention)
    Pasted image 20250614083336.png|475

正则化

正则化系数 👉 缓解神经网络在训练过程中出现的过拟合问题

有如下几种方法:

4.5 自然语言和计算机视觉应用

如何获得单个单词的词向量?

  1. 将该单词表示成 V 维 one-hot 向量 X
  2. 隐藏层神经元大小为 N, 每个神经元记为 hi(1iN)
  3. 向量 X 中每个 xi(1i V) 与隐藏层神经元是全连接,连接权重矩阵为 WV×N
  4. 这里 WV×NWN×V 为模型参数
  5. 一旦训练得到了下图的神经网络,就可以将输入层中 xk 与隐藏层连接权重为 {wk1,wk2,,wkN} (隐藏层) 作为第 k 个单词 N 维词向量 (word vector)

Pasted image 20250607211951.png|450

Word2Vec 的两种训练模式

Continuous Bag-of-Words (CBoW):根据某个单词所处的上下文单词来预测该单词

可用 xk 的前序 k1 个单词和后续单词 ck 个单词一起来预测 xk

  • 每个输入单词仍然是 V 维向量(可以是 one-hot 的表达)
  • 隐式编码为每个输入单词所对应编码的均值

Pasted image 20250607212711.png|400

Skip-gram:利用某个单词来分别预测该单词的上下文单词

无论是 CBOW 还是 Skip-Gram 模式,随着单词个数数目增加,模型参数数目也迅速上升
👉 加快模型训练:层次化 Softmax(Hierarchical Softmax)与负采样(Negative Sampling)


05 强化学习

Checkpoint

  • 价值函数 V 与动作-价值函数 q 之间的关系:
    • Vπ(s)=aAπ(s,a)qπ(s,a)
    • qπ(s,a)=sSP(s|s,a)[R(s,a,s)+γVπ(s)]
  • 贝尔曼方程 (Bellman Equation) 也被称作动态规划方程
    • 价值函数的贝尔曼方程: Vπ(s)=Eaπ(s,.)EsP(.|s,a)[R(s,a,s)+γVπ(s)]
    • 动作-价值函数的贝尔曼方程: qπ(s,a)=EsP(.|s,a)[R(s,a,s)+γEaπ(s,.)[qπ(s,a)]]
  • 强化学习的求解方法:
    • 基于价值方法 (value-based)
      • 通过策略计算价值函数的过程叫做策略评估 (policy evaluation)
        ① 动态规划 (Dynamic Programming, DP): Vπ(s)aAπ(s,a)sSP(r(s|s,a)[R(s,a,s)+γVπ(s)]]
        ② 蒙特卡洛采样 (Monte Carlo Sampling, MC): Vπ(s)1ki=1kGi
        ③ 时序差分 (Temporal Difference, TD): Vπ(s)Vπ(s)+α[R(s,a,s)+γVπ(s)Vπ(s)]
      • 通过价值函数优化策略的过程叫做策略优化 (policy improvement)
      • 策略评估和策略优化交替进行的强化学习求解方法叫做通用策略迭代 (Generalized Policy Iteration, GPI)
      • 策略优化定理 (Policy Improvement Theorem)
        • 价值迭代 (value iteration) 算法: 在策略评估动态规划法的基础上, 每次迭代只对一个状态进行策略评估和策略优化
        • Q 学习算法: 直接记录和更新动作-价值函数 qπ 而不是价值函数 Vπ, Q 学习中, 只有动作-价值函数 (即 q 函数) 参与计算。
          • 在 Q 学习中引入探索与利用机制, 用 e 贪心 (e-greedy) 策略来代替 a=argmaxaqπ(s,a): 增大 e 值能促进算法探索
          • 深度强化学习方法 DQN: 将动作-价值函数参数化
    • 基于策略 (policy-based): 策略梯度法、策略梯度定理、REINFORCE (基于蒙特卡洛采样的策略梯度法)、Actor-Critic 算法
    • 基于模型 (model-based)

5.1 强化学习定义

在智能主体与环境的交互中,学习能最大化收益的行动模式:
Pasted image 20250529201321.png|375

三种学习方式对比:

学习方式 学习依据 数据来源 决策过程 学习目标
监督学习 基于监督信息 一次给定 单步决策(如分类和识别等) 样本到语义标签的映射
无监督学习 基于对数据结构的假设 一次给定 数据的分布模式
强化学习 基于评估 在时序交互中产生 序贯决策(如棋类博弈) 选择能够获取最大收益的状态到动作的映射

离散马尔可夫过程 Discrete Markov Process

基本概念

随机过程:是一列随时间变化的随机变量;

马尔可夫链(Markov Chain):满足马尔可夫性(Markov Property)的离散随机过程,也被称为离散马尔科夫过程

马尔可夫奖励过程(Markov Reward Process):引入奖励

马尔可夫决策过程(Markov Decision Process):引入动作

综合以上信息,可通过 MDP={S,A,Pr,R,γ} 来刻画马尔科夫决策过程

策略学习

智能主体如何与环境交互而完成任务?需要进行策略学习

策略函数:

为了对策略函数𝜋进行评估,定义

这样,策略学习转换为如下优化问题:寻找一个最优策略 π, 对任意 sS 使得 Vπ(s) 值最大

价值函数与动作-价值函数的关系——贝尔曼方程(Bellman Equation)

价值函数的贝尔曼方程:

Vπ(s)=aAπ(s,a)qπ(s,a)νπ(s)aAπ(s,a)sSPr(s|s,a)[R(s,a,s)+γνπ(s)]
  • 当前状态价值函数等于瞬时奖励的期望加上后续状态的(折扣)价值函数的期望
  • 价值函数取值与时间没有关系,只与策略π、在策略π下从某个状态转移到其后续状态所取得的回报、以及在后续所得回报有关

动作-价值函数的贝尔曼方程:

qπ(s,a)=sSPr(s|s,a)[R(s,a,s)+γVπ(s)]
  • 当前状态下的动作-价值函数等于瞬时奖励的期望加上后续状态的(折扣)动作-价值函数的期望

5.2 基于价值的强化学习

强化学习求解:在策略优化和策略评估的交替迭代中优化参数
Pasted image 20250529205513.png|475

策略评估和策略优化交替进行的强化学习求解方法叫做通用策略迭代

策略优化

给定当前策略 π、价值函数 Vπ 和行动-价值函数 qπ 时,可如下构造新的策略 π, π 要满足如下条件:

π(s)=argmaxaqπ(s,a)(sS)

策略评估

通过迭代计算贝尔曼方程进行策略评估

动态规划
算法流程

  • 初始化 Vπ 函数
  • 循环
    • 枚举 sS
    νπ(s)aAπ(s,a)sSPr(s|s,a)[R(s,a,s)+γνπ(s)]$$//a

缺点:智能主体需要事先知道状态转移概率无法处理状态集合大小无限的情况

蒙特卡洛采样

给定状态 s,从该状态出发不断采样后续状态,得到不同的采样序列。通过这些采样序列来分别计算状态 s 的回报值,对这些回报值取均值,作为对状态 s 价值函数的估计,从而避免对状态转移概率的依赖

算法流程

  • 选择不同的起始状态,按照当前策略 π 采样若干轨迹,记它们的集合为 D
  • 枚举 sS
    • 计算 D 中 s 每次出现时对应的反馈 G1,G2,,GkVπ(s)1ki=1kGi

时序差分

可以看作蒙特卡罗方法和动态规划方法的有机结合

使用下一时刻状态的价值函数来估计当前状态的价值函数,而不是使用整个片段的反馈值 R+γVπ(s)

算法流程

  • 初始化 Vπ 函数
  • 循环
    • 初始化 s 为初始状态
    • 循环
      • aπ(s,) 动作 a 的选取服从策略分布
      • 执行动作 a, 观察奖励 R 和下一个状态 s
      • 更新 Vπ(s)Vπ(s)+α[R(s,a,s)+γVπ(s)Vπ(s)]
      • ss
    • 直到 s 是终止状态
  • 直到 Vπ 收敛

时序差分法和蒙特卡洛法都是通过采样若干个片段来进行价值函数更新的,但是时序差分法并非使用一个片段中的终止状态所提供的实际回报值来估计价值函数,而是根据下一个状态的价值函数来估计,这样就克服了采样轨迹的稀疏性可能带来样本方差较大的不足问题,同时也缩短了反馈周期

基于价值的强化学习算法

结合策略优化和策略评估两个阶段,得到基于价值的强化学习算法:在策略评估动态规划法的基础上, 每次迭代只对一个状态进行策略评估和策略优化

注意这里不涉及时序差分中的 α 的概念,而是使用整个片段的反馈值 R+γVπ(s)

基于价值的强化学习算法

  • 随机初始化 Vπ
  • repeat
    • foreach sS do
      • Vπ(s)maxasP(s|s,a)[R(s,a,s)+γVπ(s)] // 这里是 max 函数
    • end
  • until Vπ 收敛
  • π(s):=argmaxasP(s|s,a)[R(s,a,s)+γVπ(s)]

Q-Learning

Q 学习中直接记录和更新动作-价值函数 qπ 而不是价值函数 Vπ, 这是因为策略优化要求已知动作-价值函数 qπ,如果算法仍然记录价值函数 Vπ,在不知道状态转移概率的情况下将无法求出 qπ

Q-Learning 算法流程

  • 初始化 qπ 函数
  • 循环
    • 初始化 s 为初始状态
    • 循环
      • a=argmaxaqπ(s,a)
      • 执行动作 a, 观察奖励 R 和下一个状态 s
      • 更新 qπ(s,a)qπ(s,a)+α[R+γmaxaqπ(s,a)qπ(s,a)]
      • ss
    • 直到 s 是终止状态
  • 直到 qπ 收敛

探索(exploration)与利用(exploitation)的平衡

Pasted image 20250530141237.png|450

为何 Q 学习收敛到非最优策略?

大体上利用,偶尔探索👇
ϵ 贪心(ϵ -greedy)策略:

ϵgreedyπ(s)={argmaxaqπ(s,a), 以 1ϵ 的概率  随机的 aA, 以 ϵ 的概率 
加上 ϵ 贪心(ϵ -greedy)策略后的 Q-Learning

  • 初始化 qπ 函数
  • 循环
    • 初始化 s 为初始状态
    • 循环
      • a=ϵgreedyπ(s)
      • 执行动作 a, 观察奖励 R 和下一个状态 s
      • 更新 qπ(s,a)qπ(s,a)+α[R+γmaxaqπ(s,a)qπ(s,a)]
      • ss
    • 直到 s 是终止状态直到
  • qπ 收敛

参数化与深度强化学习
深度 Q 学习算法 DQN

  • 初始化 qπ 函数的参数 θ
  • 循环
    • 初始化 s 为初始状态
    • 循环
      • 采样 aϵgreedyπ(s;θ)
      • 执行动作 a, 观察奖励 R 和下一个状态 s'
      • 损失函数 L (θ)=12[R+γmaxaqπ(s,a;θ)qπ(s,a;θ)]2
      • 根据梯度 L(θ)/θ 更新参数 θ
      • ss
    • 直到 s 是终止状态
  • 指导 qπ 收敛

两个不稳定因素:

经验重现 Experience Replay

目标网络 Target Network
$$L (\theta)=\frac12[R+\gamma\max_{a^{\prime}}\boxed{q_\pi (s^{\prime}, a^{\prime};\theta^{-})}-q_\pi (s, a;\theta)]^2$$

θθ

Pasted image 20250530142322.png|450

5.3 基于策略的强化学习

通过直接参数化策略函数的方法求解强化学习问题;算法需要求参数化的策略函数的梯度,因此这些方法称为策略梯度法

假设强化学习问题的初始状态为 s0,不难定义算法希望达到的最大化目标为:

J(θ):=Vπθ(s0)

策略梯度定理

如果能够计算或估计策略函数的梯度,智能体就能直接对策略函数进行优化:

θJ(θ)=θsμπθ(s)aqπθ(s,a)πθ(s,a)sμπθ(s)aqπθ(s,a)θπθ(s,a)

基于蒙特卡洛采样的策略梯度法:REINFORCE

基于时序差分的策略梯度法:Actor-Critic 算法

5.4 深度强化学习应用

Pasted image 20250614102000.png

面临的挑战:


06 人工智能博弈

6.1 博弈论相关概念

博弈行为:带有相互竞争性质的主体,为了达到各自目标和利益,采取的带有对抗性质的行为

相关概念:

研究范式:建模者对参与者(player)规定可采取的策略集 (strategy sets) 和取得的收益,观察当参与者选择若干策略以最大化其收益时会产生什么结果

囚徒困境(prisoner’s dilemma)

在囚徒困境中,最优解为两人同时沉默,但是两人实际倾向于选择同时认罪(均衡解)
Pasted image 20250520102428.png|475

博弈的分类

博弈的稳定局势 👉 纳什均衡:如果在一个策略组合上,当所有其他人都不改变策略时,没有人会改变自己的策略,则该策略组合就是一个纳什均衡

6.2 博弈策略求解

遗憾最小化算法

对于一个有 N 个玩家参加的博弈,玩家 i 在博弈中采取的策略记为 σi

最优反应策略:

在策略组合 σ 中,如果每个玩家的策略相对于其他玩家的策略而言都是最佳反应策略,那么策略组合 σ 就是一个纳什均衡 (Nash equilibrium) 策略

在有限对手、有限策略情况下,纳什均衡一定存在

此时,策略组 σ={σ1,σ2,...,σN} 对任意玩家 i=1,...,N, 满足如下条件:

ui(σ)maxσiΣiμi(σ1,σ2,...,σi,...,σN)
算法定义

遗憾最小化算法是一种根据以往博弈过程中所得遗憾程度来选择未来行为的方法

玩家 i 在过去 T 轮中采取策略 σi累加遗憾值定义如下:

RegretiT(σi)=t=1T(ui(σi,σit)ui(σt))

其中 σtσit 分别表示第 t 轮中所有玩家的策略组合除了玩家 i 以外的策略组合
简单地说,累加遗憾值代表着在过去 T 轮中,玩家 i 在每一轮中选择策略 σi 所得收益与采取其他策略所得收益之差的累加

遗憾匹配

定义有效遗憾值:遗憾值为负数的策略 👉 不能提升下一时刻收益

RegretiT,+(σi)=max(RegretiT(σi),0)

利用有效遗憾值的遗憾匹配可得到玩家 iT 轮后第 T+1 轮选择策略 σi 的概率 P(σiT+1) 为:

P(σiT+1)={RegretiT,+(σi)σiΣiRegretiT,+(σi)if σiΣiRegretiT,+(σi)>01|Σi|otherwise
为啥不是每次都选择遗憾值最大的策略进行行动?

依照一定的概率选择行动是为了防止对手发现自己所采取的策略(如采取遗憾值最大的策略)

虚拟遗憾最小化算法

很多博弈(围棋、扑克)需要多次决策才能判断胜负,会导致博弈状态空间呈指数增长时,对一个规模巨大的博弈树无法采用最小遗憾算法,因此需要采取虚拟遗憾最小化算法(counterfactual regret minimization)

也就是说,一轮代表着多次决策,多次决策才能达到终局

算法理论

对于任何序贯决策的博弈对抗,可将博弈过程表示成一棵博弈树

具体而言,在信息集 I 下,玩家可以采取的行动集合记作 A(I)

在一次博弈中,所有玩家交替采取的行动序列记为 h(从根节点到当前节点的路径),对于所有玩家的策略组合 σ,行动序列 h 出现的概率记为 πσ(h),不同的行动序列可以从根节点到达当前节点的信息集 I(即不同决策路径可到达博弈树中同一个中间节点)

在策略组合 σ 下,所有能够到达该信息集的行动序列的概率累加就是该信息集 (即中间节点) 的出现概率,即 $$\boldsymbol{\pi}^{\boldsymbol{\sigma}}(\boldsymbol{I})=\sum_{\boldsymbol{h}\in\boldsymbol{I}}\boldsymbol{\pi}^{\boldsymbol{\sigma}}(\boldsymbol{h})$$

博弈的终结局势集合也就是博弈树中叶子节点的集合,记为 Z

在策略组合 σ 下,对玩家 i 而言,如下计算从根节点到当前节点的行动序列路径 h 的虚拟价值:

vi(σ,h)=zZπiσ(h)不考虑玩家i的策略到达当前节点概率×πσ(h,z)从当前节点到叶子结点概率×ui(z)z

行动序列路径 h 的虚拟价值等于如下三项结果的乘积:

在定义了行动序列路径 h 的虚拟价值之后,就可如下计算玩家 i 在基于路径 h 到达当前节点采取行动 a 的遗憾值:(针对节点 I 以及动作 a 的遗憾值)

ri(h,a)=vi(σIa,h)vi(σ,h)

对能够到达同一个信息集 I(即博弈树中同一个中间节点)的所有行动序列的遗憾值进行累加,即可得到信息集 I 的遗憾值:(针对节点 I 的遗憾值)

ri(I,a)=hIri(h,a)

类似于遗憾最小化算法,虚拟遗憾最小化算法的遗憾值T 轮重复博弈后的累加值:

RegretiT(I,a)=t=1Trit(I,a)

进一步可以定义有效虚拟遗憾值:

RegretiT,+(I,a)=max(RiT(I,a),0)

根据有效虚拟遗憾值进行遗憾匹配以计算经过 T 轮博弈后,玩家 i 在信息集 I 情况下于后续 T + 1 轮选择行动 a 的概率:

σiT+1(I,a)={RegretiT,+(I,a)aA(I)RegretiT,+(I,a) if aA(I)RegretiT,+(I,a)>01|A(I)| otherwise 

6.3 博弈规则设计

如何设计博弈的规则,使得博弈的最终局势能尽可能达到整体利益的最大化

双边匹配问题: 稳定婚姻问题

在给定成员偏好顺序的情况下,为两组成员寻找稳定的匹配

假设有 n 个单身男性构成的集合 M={m1,m2,...,mn}, 以及 n 个单身女性构成的集合 F={f1,f2,...,fn}

他们有着如下偏好:

不稳定匹配:对于两对潜在的匹配伴侣 (mi,fj)(ml,fk), 如果 smi 中有 fk>fjsfk 中有 mi>ml, 则这样的匹配就是不稳定的匹配,因为 mifk 都会去选择其更希望的匹配 (都喜欢别人的对象)

稳定匹配问题的稳定解:不存在未达成匹配的两个人都更倾向于选择对方而不是自己当前的匹配对象

Gale- Shapely 算法或 G-S 算法

  1. 单身男性向最喜欢的女性表白
  2. 所有收到表白的女性从向其表白男性中选择最喜欢的男性,暂时匹配
  3. 未匹配的男性继续向没有拒绝过他的女性表白。收到表白的女性如果没有完成匹配,则从这一批表白者中选择最喜欢的男性
  4. 即使收到表白的女性已经完成匹配,但是如果她认为有她更喜欢的男性,则可以拒绝之前的匹配者,重新匹配
  5. 如此循环迭代,直到所有人都成功匹配为止

单边匹配问题: 最大交易圈 TTC

单边匹配问题:分配的对象都是不可分的标的物,他们只能属于一个所有者,且可以属于任何一个所有者

最大交易圈算法

  1. 两种图节点:人节点和标的物节点,初始化可以随意分配
  2. 每个交易者连接一条指向他最喜欢的标的物的边,每一个标的物连接到其占有者或是具有高优先权的交易者
  3. 此时形成一张有向图,且必存在环,这种环被称为“交易圈”,
  4. 对于交易圈中的交易者,将每人指向结点所代表的标的物赋予交易者
  5. 交易者和标的物均离开市场
  6. 接着从剩余的交易者和标的物之间重复进行交易圈匹配,直到无法形成交易圈,算法停止


Copyright © 2025 Casette.
Made with Obsidian DG.